#ifndef __IO_EXAPTION_H__
#define __IO_EXAPTION_H__
#ifndef CC_BC32
#define GEN_IO_ERROR(message) throw lampe::exception::IOException(__LINE__,__FILE__,__FUNCTION__,message)
#else
#define GEN_IO_ERROR(message) throw lampe::exception::IOException(message)
#endif
#include "Base.h"

namespace lampe{
namespace exception{


/***
* @class IOException
* Класс ошибки, который нужно "выкидывать" когда произашли какие-то ошибки типа ввод/вывод, например работа с файлом
*
* Пример:
* try{
*	GEN_IO_ERROR("Пример генерации IO ошибки");
* }catch(IOException e){
*	printf("catched IO errror! %s\n",e.what());
* }
*
* */
class IOException:public Base{
public:
#ifndef CC_BC32
	IOException(u32 l,String f,String m,String m2):Base(l,f,m,m2){
		//nothing
	}
#else
	IOException(String m2):Base(m2){
		//nothing
	}
#endif
	virtual ~IOException() throw(){
		//nothing
	}
};

}//namespace exception
}//namespace lampe
#endif
